﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CRC.Inspecciones.Dominio.Controlador;

namespace CRC.Inspecciones.Presentacion
{
    public partial class UsrSeguimientoInspecciones : UserControl
    {
        private ControladorListarSeguimientoInspecciones cLSI = new ControladorListarSeguimientoInspecciones();

        public UsrSeguimientoInspecciones()
        {
            InitializeComponent();
            Cargar_Combos();
            //CargarTodosSeguimientos();
        }

        private void Cargar_Combos()
        {
            try
            {
                Controlador_GestionZonasEInspecciones cZonas = new Controlador_GestionZonasEInspecciones();
                this.cmbFiltroZona.SetData(cZonas.ObtenerZonasLigeras());
                CRC.GestionSalones.Controladores.ControladorListarSalones cSalones = new CRC.GestionSalones.Controladores.ControladorListarSalones();
                this.cmbSalones.SetData(cSalones.listarSalonesLigeros());
                ControladorListarSeguimientoInspecciones cSeguimientos = new ControladorListarSeguimientoInspecciones();
                this.cmbFiltroYear.DataSource = cSeguimientos.ObternerAñosSeguimientos();
                if (cmbFiltroYear.Items.Count > 0) cmbFiltroYear.SelectedIndex = 0;

                cmbSalones.SelectedIndexChanged += new EventHandler(cmb_SelectedIndexChanged);
                cmbFiltroYear.SelectedIndexChanged += new EventHandler(cmb_SelectedIndexChanged);
                cmbFiltroZona.SelectedIndexChanged += new EventHandler(cmb_SelectedIndexChanged);

                CargarSeguimientos();
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    ex.Message, "Error",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning
                );
            }
                       
        }

        private void cmb_SelectedIndexChanged(object sender, EventArgs e)
        {
            ComboBox cmb = (ComboBox)sender;
            if (cmb.SelectedIndex != -1) { CargarSeguimientos(); }
        }

        private void btnCerrar_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void CargarSeguimientos() {
            try {
                int? intAño = null, intSalon = null, intZona = null ;

                intAño = (cmbFiltroYear.SelectedValue != null) ? (int?)cmbFiltroYear.SelectedValue : null;
                intSalon = (cmbSalones.SelectedKey != null) ? (int?)cmbSalones.SelectedKey : null;
                intZona = (cmbFiltroZona.SelectedKey != null) ? (int?)cmbFiltroZona.SelectedKey : null;

                lstSeguimiento.Rows.Clear();
                
                IList<Object[]> infoSeguimiento = cLSI.ListarTodo(intAño, intSalon, intZona);
                foreach (Object[] infoSeg in infoSeguimiento)
                {
                    lstSeguimiento.Rows.Add(infoSeg);
                }

            }
            catch (Exception ex) { }
        }

        private void butImprimirHoja_Click(object sender, EventArgs e)
        {
              this.folderBrowserDialog1.ShowDialog();
              if (this.folderBrowserDialog1.SelectedPath.Length > 0)
              {
                  string ruta = this.folderBrowserDialog1.SelectedPath;
                  CRC_Imprimir.CRC_Imprimir impr = new CRC_Imprimir.CRC_Imprimir();
                  impr.Imprimir_Seguimiento_Inspeccion(ruta);
              }
            
        }

        private void butLimpiarFiltro_Click(object sender, EventArgs e)
        {
            cmbSalones.SelectedIndex = -1;
            cmbFiltroYear.SelectedIndex = -1;
            cmbFiltroZona.SelectedIndex = -1;
            CargarSeguimientos();
        }
    }
}
